@Author: Alan GAacia			                   Date: 8 / Marzo / 2017
@ Description: Numero maximo de lista
@ Input: -
@ Output: Maximo

@ MaxAlan.s



@ r1 - Direccion de los elementos
@ r0 - Utilizado para el dato mayor
@ r3 - Elemento actual

.section          .data

numbers:                        @ Nuestros datos
.long   3, 97,34,122,35,70,58,31,49,33,21,21,86,0

.global   _start
##############INICIA EXE#############
_start:
ldr %r1, =numbers               @ r1 inicia la direccion de los numeros
ldr %r3, [%r1]                  @ Carga r3 con el primer numero
mov %r0, %r3                    @ El numero actual es el numero mas gradne ya que no hay otro!

loop:
  cmp %r3, $0                   @ Verificar si r3 tiene el valor
  beq exit                      @ Si es asi, sale
  ldr %r3, [%r1, #4]!           @ Cargamos el sigiente dato en r3
  cmp %r3, %0                   @ Comparamos r0 y r3
  ble loop                      @ Vamos al inicio del bucle si r3 <= r0
  mov %r0, %r3                  @ Si no, poner r3 en r0
  bal loop                      @ Vamos al inicio del bucle (Siempre la rama)
  
exit:                           @ Valor mas grande ahora en r0
mov %r7, $1                     @ Preparado para salir
svc $0                          @ Despertamos el Kernel
.end                            @ Final del codigo
